Importando as bibliotecas
!pip install plotly==4.5.4
import numpy as np
import pandas as pd
import pandas_datareader.data as web
import plotly.graph_objects as go
!pip install yfinance --upgrade --no-cache-dir
import yfinance as yf
yf.pdr_override()
Obtendo os dados
ibov = web.get_data_yahoo("^BVSP")
ibov.tail()
ibov = ibov.reset_index()
#Gráfico do fechamento das ações em 2019
fig = go.Figure()
fig.add_trace( go.Scatter(
x=ibov.Date,
y=ibov.Close,
name = "Ibovespa Close",
line = dict(color = '#17BECF'),
opacity = 0.8)
)
layout = fig.update_layout(dict(
title = "Ações Ibovespa 2019",
title_x= 0.5,
xaxis =dict(
range = ['2019-01-01','2019-12-31'])
))
fig.show()
fig = go.Figure()
fig.add_trace(go.Scatter(
x=ibov.Date,
y=ibov.Close,
name = "Ibovespa close",
line = dict(color = '#17BECF'),
opacity = 0.8)
)
layout = fig.update_layout(dict(
title="Close",
title_x=0.5,
xaxis=dict(
rangeselector=dict(
buttons=list([
dict(count=1,
label='1m',
step='month',
stepmode='backward'),
dict(count=6,
label='6m',
step='month',
stepmode='backward'),
dict(step='all')
])
),
rangeslider=dict(
visible = True
),
type='date'
)
))
fig.show()
fig = go.Figure()
fig.add_trace(go.Candlestick(x=ibov['Date'],
open=ibov['Open'],
high=ibov['High'],
low=ibov['Low'],
close=ibov['Close']))
fig.show()
fig = go.Figure()
fig.add_trace(go.Candlestick(x=ibov['Date'],
open=ibov['Open'],
high=ibov['High'],
low=ibov['Low'],
close=ibov['Close']))
layout = fig.update_layout({
'title': 'Ibovespa Preços no Periodo',
'title_x': 0.5,
'yaxis': {'title': 'Ibovespa Preço'},
'annotations': [{
'x': '2020-02-26',
'y': 15,
'xref': 'x',
'yref': 'y',
'showarrow': True,
'font':dict(
family="Courier New, monospace",
size=12
),
'text': 'Primeiro caso de coronavírus no Brasil',
'align':"center",
'arrowhead':4,
'arrowsize':2,
'arrowwidth':2,
'bordercolor':"#c7c7c7",
'borderwidth':2,
'borderpad':3
}]
}
)
fig.show()
# Cria coluna com média 3
ibov['MM_3'] = ibov.Close.rolling(window=3).mean()
# Cria coluna com média 7
ibov['MM_7'] = ibov.Close.rolling(window=7).mean()
fig = go.Figure()
fig.add_trace(go.Scatter(
x=ibov.Date,
y=ibov.Close,
name = "Ibovespa Close",
line = dict(color = '#330000'),
opacity = 0.8))
fig.add_trace(go.Scatter(
x=ibov.Date,
y=ibov['MM_3'],
name = "Média 3 Períodos",
line = dict(color = '#B2FF66'),
opacity = 0.8))
fig.add_trace(go.Scatter(
x=ibov.Date,
y=ibov['MM_7'],
name = "Média 7 Períodos",
line = dict(color = '#CC00CC'),
opacity = 0.8))
fig.show()
ibov_2020 = ibov.loc[ibov["Date"].dt.year == 2020]
fig = go.Figure()
fig.add_trace(go.Candlestick(x=ibov_2020['Date'],
open=ibov_2020['Open'],
high=ibov_2020['High'],
low=ibov_2020['Low'],
close=ibov_2020['Close']))
fig.show()
fig = go.Figure()
fig.add_trace(go.Candlestick(x=ibov_2020['Date'],
open=ibov_2020['Open'],
high=ibov_2020['High'],
low=ibov_2020['Low'],
close=ibov_2020['Close']))
layout = fig.update_layout({
'title': 'Ibovespa Preços no Periodo',
'title_x': 0.5,
'yaxis': {'title': 'Ibovespa Preço'},
'annotations': [{
'x': '2020-02-26',
'y': 15,
'xref': 'x',
'yref': 'y',
'showarrow': True,
'font':dict(
family="Courier New, monospace",
size=12
),
'text': 'Primeiro caso de coronavírus no Brasil',
'align':"center",
'arrowhead':4,
'arrowsize':2,
'arrowwidth':2,
'bordercolor':"#c7c7c7",
'borderwidth':2,
'borderpad':3
}]
}
)
fig.show()